import axios from "axios";
import store from "@/store";
//处理大数字
import jsonBig from 'json-bigint'


// 设置默认请求地址
// console.log(process.env)
//判断是否为生产环境
/* if (process.env.NODE_ENV == 'development') {
  axios.defaults.baseURL = "http://video.zjsxjy.com";
} else {
  axios.defaults.baseURL = window.location.origin;
} */
axios.defaults.timeout = 10000;
// axios.defaults.withCredentials = true;
const request = axios.create({
  /*  线上地址 */
   baseURL: 'http://video.zjsxjy.com',
  //baseURL: '/api',
  // transformResponse 允许自定义原始的响应数据（字符串）
  //  所有相应的数据就不会存在大数字问题了
  transformResponse: [function (data) {
    try {
      // 如果转换成功则返回转换的数据结果
      return jsonBig.parse(data)
    } catch (err) {
      // 如果转换失败，则包装为统一数据格式并返回
      return {
        data
      }
    }
  }]
});

// 添加请求拦截器
request.interceptors.request.use(
  function (config) {
     // 改变vuex中的isLoading状态数据，当为true，loading显示
     store.state.isLoading = true
    // 在发送请求之前做些什么
    //console.log(config, 9999);
    // if (window.localStorage.getItem('SET_TOKEN')) {
    //     config.headers.Authorization = 'Bearer ' + JSON.parse(window.localStorage.getItem('SET_TOKEN')).token
    // }
    // 请求头添加
    // if (store.state.user) {
    //   config.headers.Authorization = /*"Bearer +"*/ store.state.user.token;
    // }
    // if(sessionStorage.getItem("token")){
    //   config.headers.token = sessionStorage.token
    //   }
    return config;
  },
  function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  }
);

// 添加响应拦截器
request.interceptors.response.use(
  function (response) {
    // 对响应数据做点什么
    if (response.status === 200) {
      //loading隐藏
      store.state.isLoading = false
      return Promise.resolve(response);
      } else {
      return Promise.reject(response);
      }
    return response;
  },
  function (error) {
    // 对响应错误做点什么
    return Promise.reject(error);
  }
);

export default request;
